           package com.java.diagnostics.visualizer.impl.data;
           
           import com.java.diagnostics.visualizer.data.AggregateData;
           import com.java.diagnostics.visualizer.data.DataLevel;
           import com.java.diagnostics.visualizer.data.SourceData;
           import com.java.diagnostics.visualizer.data.StructuredData;
           import com.java.diagnostics.visualizer.data.TupleData;
           import com.java.diagnostics.visualizer.data.UnstructuredData;
           
           public class SourceDataImpl
             implements SourceData
           {
             private AggregateDataImpl dataSetData;
             private AggregateDataImpl variantData;
             private String variantLabel;
           
             public SourceDataImpl(String variantLabel)
             {
               this.variantLabel = variantLabel;
           
               this.dataSetData = new AggregateDataImpl();
               this.variantData = new AggregateDataImpl();
             }
           
             public String getVariantLabel() {
               return this.variantLabel;
             }
           
             public void setVariantIdentifier(String variant) {
               this.variantLabel = variant;
             }
           
             public boolean isEmpty()
             {
               return (this.dataSetData.isEmpty()) && (this.variantData.isEmpty());
             }
           
             public AggregateData getVariantLevelData() {
               return this.variantData;
             }
           
             public AggregateData getDataSetLevelData() {
               return this.dataSetData;
             }
           
             public void addData(UnstructuredData data, DataLevel level) {
               if (level == DataLevel.VARIANT)
                 this.variantData.add(data);
               else if (level == DataLevel.DATASET)
                 this.dataSetData.add(data);
             }
           
             public void addData(StructuredData data, DataLevel level)
             {
               if (level == DataLevel.VARIANT)
                 this.variantData.add(data);
               else if (level == DataLevel.DATASET)
                 this.dataSetData.add(data);
             }
           
             public void addData(TupleData data, DataLevel level)
             {
               if (level == DataLevel.VARIANT)
                 this.variantData.add(data);
               else if (level == DataLevel.DATASET)
                 this.dataSetData.add(data);
             }
           }

